import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.*;  // (Date)
/**
 * Clase que simula un cronometro desde milisegundos
 * 
 * @autor MORALES IBARRA IVAN ISRAEL
 * @version 
 */
public class Timer extends Actor
{
    private Date cont;     
    private Date cont2;
    int val;
    int dif;
    /**
     * Constructor para la clase Cronometro
     */
    public Timer(int valor)
    {
        cont = null;
        val=valor;
        this.setImage(new GreenfootImage(
                          "Time     ",
                          30,java.awt.Color.WHITE,
                          java.awt.Color.BLACK));
    }
    /**
     * Metodo que se encarga de mandar llamar a las
     * actualizaciones de los valores de los contadores
     */
    public void act() 
    {
        if(cont == null)
            this.inicializa();
        this.actualizaCrono();
    }    
    /**
     * Se encarga de inicializar el contador para tener
     * una referencia de tiempo inicial
     */
    public void inicializa()
    {
        cont = new Date();
    }
    
    /**
     * Actualiza el cronometro milesima de segundo
     */
    public void actualizaCrono()
    {
        cont2 = new Date();
        dif=(int)(cont2.getTime() - cont.getTime());
        this.setImage(new GreenfootImage(" Time  "+
                           String.valueOf(val-(dif/1000))+" "
                          ,30,java.awt.Color.WHITE
                          ,java.awt.Color.BLACK));
    }
    
    /**
     * Regresa el tiempo actual en milisegundos
     * 
     * @return     el tiempo actual en milisegundos
     */
    public int dameTiempo()
    {
        return dif;
    }
    
    /**
     * An example of a method - replace this comment with your own
     *
     * @param  y   a sample parameter for a method
     * @return     the sum of x and y
     */
    public int dameActual()
    {
        return val-(dif/1000);
    }

    
    
    
}